/**
 * javaHispano 2008
 */
package org.javahispano.jwitter.view.validator;

import org.javahispano.jwitter.view.command.UsuarioCommand;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

/**
 * @author javaHispano
 * Validador usado en el registro de un nuevo usuario
 */
public class UsuarioValidator implements Validator{

	/**
	 * Establecemos la clases que se pueden validar
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean supports(Class clazz) {		
		return UsuarioCommand.class.equals(clazz);
	}

	/**
	 * Aqui es donde se realiza la validacion
	 */
	@Override
	public void validate(Object command, Errors errors) {
		UsuarioCommand usuario = (UsuarioCommand)command;		
		ValidationUtils.rejectIfEmpty(errors, "username", "error.requerido", "campo requerido");
		ValidationUtils.rejectIfEmpty(errors, "nombre", "error.requerido", "campo requerido");
		ValidationUtils.rejectIfEmpty(errors, "apellidos", "error.requerido", "campo requerido");
		ValidationUtils.rejectIfEmpty(errors, "email", "error.requerido", "campo requerido");
		ValidationUtils.rejectIfEmpty(errors, "password", "error.requerido", "campo requerido");
		ValidationUtils.rejectIfEmpty(errors, "password2", "error.requerido", "campo requerido");
		if(errors.getErrorCount() == 0 ){
			if(!usuario.getPassword().trim().equals(usuario.getPassword2().trim())){
				errors.rejectValue("contrasena", "error.contrasenas", "Las contraseñas no coinciden.");
			}
		}
		
	}

}
